home *** CD-ROM | disk | FTP | other *** search
- /* $VER: AmigaDynsCX.rexx 1.0 (23-05-2001)
- *
- */
- PARSE ARG dyns
-
- dynsUsername=''
- dynsPassword=''
- dynsHost=''
- dynsDomain=''
- dynsIP=''
- if pos('-u',dyns) > 0 then parse var dyns x'-u' dynsUsername x
- if pos('-p',dyns) > 0 then parse var dyns x'-p' dynsPassword x
- if pos('-h',dyns) > 0 then parse var dyns x'-h' dynsHost x
- if pos('-d',dyns) > 0 then parse var dyns x'-d' dynsDomain x
- if pos('-i',dyns) > 0 then parse var dyns x'-i' dynsIP x
- if dynsUsername='' then fehler2('no username given')
- if dynsPassword='' then fehler2('no password given')
- if dynsHost='' then fehler2('no hostname given')
-
- cr = '0D'x
- lf = '0A'x
- crlf = cr || lf
-
- IF ~Show('L', 'rxsocket.library') THEN
- IF ~AddLib('rxsocket.library', 0, -30, 0) THEN
- Abend('Could not open rxsocket.library')
- IF ~IsLibOn('SOCKET') THEN fehler('No TCP/IP stack running.')
-
- socket = OpenConnection('TCP', 80, 'www.dyns.net')
- IF socket < 0 THEN fehler('Could not connect to server <www.dyns.net>.')
- CALL SetSockOpt(socket, 'SOCKET', 'RCVTIMEO', 60)
- msg = 'GET /postscript011.php?username='dynsUsername'&password='dynsPassword'&host='dynsHost'&domain='dynsDomain'&ip='dynsIP' HTTP/1.1'crlf,
- || 'User-Agent: AmigaDynsCX.rexx 1.0'crlf,
- || 'Host: www.dyns.net'crlf,
- || crlf
-
- IF send(socket, msg) ~= Length(msg) THEN fehler(ErrorString())
- call recvline(socket, 'LINE', 512)
- parse var line http ecode emessage
- if ecode~=200 then fehler('HTTP-Error:'ecode emessage)
-
- do until line=''
- call recvline(socket, 'LINE', 512)
- line = Strip(line, 'T', '0D0A'x)
- end
- call recvline(socket, 'LINE', 512)
- call recvline(socket, 'LINE', 512)
- line = Strip(line, 'T', '0D0A'x)
-
- CALL CloseSocket(socket)
-
- parse var line rcode rmessage
- if rcode='200' then say 'OK! 'rmessage
- else call fehler('Error:' rcode rmessage)
-
- EXIT
-
-
- /** Error handling **/
- fehler: PROCEDURE
- PARSE ARG reason
- SAY '*** AmigaDynsCX.rexx error:' reason
- EXIT 20
-
- fehler2: PROCEDURE
- PARSE ARG reason
- SAY '*** AmigaDynsCX.rexx error:' reason
- say 'usage: rx amigadyns.cx.rexx <-u USERNAME> <-p PASSWORD> <-h HOSTNAME> [-d DOMAIN] [-i IP]'
- say
- say 'example: rx AmigaDynsCX.rexx -u joe -p foo -h robinson -d dyns.cx -i 44.344.34.32'
- say ' or: rx AmigaDynsCX.rexx -u joe -p foo -h robinson.dyns.cx -i 44.344.34.32'
- say ' or: rx AmigaDynsCX.rexx -u joe -p foo -h robinson.dyns.cx'
- EXIT 20